1. Field of the Invention
This invention generally relates to database systems, and more specifically relates to an apparatus and method for optimizing database performance using indexes.
2. Background Art
Database systems have been developed that allow a computer to store a large amount of information in a way that allows a user to search for and retrieve specific information in the database. For example, an insurance company may have a database that includes all of its policy holders and their current account information, including payment history, premium amount, policy number, policy type, exclusions to coverage, etc. A database system allows the insurance company to retrieve the account information for a single policy holder among the thousands and perhaps millions of policy holders in its database.
Retrieval of information from a database is typically done using queries. A query usually specifies conditions that apply to one or more columns of the database, and may specify relatively complex logical operations on multiple columns. The database is searched for records that satisfy the query, and those records are returned as the query result.
Auxiliary data structures such as indexes may be built to speed the execution of a query. In the prior art, human users (such as system administrators, application programmers and database analysts) built indexes when the user determined that an index would speed the processing of a query, and deleted indexes when the user determined that the index was no longer useful. The decision of when to build an index, the characteristics of the index, and when to delete an index has been made by human users. Without a way to autonomically create, modify and delete indexes, the database industry will continue to suffer from inefficient, manual methods of managing indexes.